home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / batchut / ebl407px.zip / README2 < prev    next >
Text File  |  1992-01-15  |  12KB  |  320 lines

  1.  
  2.  
  3.         DEAR SHAREWARE USER AND POTENTIAL CUSTOMER:
  4.  
  5.  
  6.        We are happy  to provide you with this updated diskette.  In
  7.        this edition there  are several new functions based on ideas
  8.        from customers  like yourself, plus a few bug fixes. We look
  9.        forward to improving the product further to meet your needs.
  10.        Complete details of all changes are shown below.
  11.  
  12.        We  would  also  like to extend a  special  offer to  anyone
  13.        interested in further documentation.  The  entire  text from
  14.        "The EBL-Plus Language - Users Guide" is  included  in  this
  15.        distribution.  Simply  look  at  the  users  guide by typing
  16.        'VIEWBOOK  EBLBOOK'  at  the  system  command  prompt.  This
  17.        hypertext  guide allows you  to  quickly  browse  the entire
  18.        manual.    We're  sure  you  will  find  it  useful.   After
  19.        experiencing the power of EBL-Plus,  batch  files will never
  20.        be the same!
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.        DETAIL OF CHANGES TO EBL-PLUS
  28.  
  29.  
  30.        *   EBL 4.07
  31.  
  32.            -   Updated code which follows DOS's CALL chain to match
  33.                DOS5's characteristics.  (thanks  Arno  Krakauer and
  34.                George Szentirmai)
  35.  
  36.            -   Updated  code which closes  files  being  read  when
  37.                shelling. (Thanks Jim Fouch)
  38.  
  39.        *   EBL 4.06c
  40.  
  41.            -   Support added to recognize DOS 5.
  42.  
  43.            -   Added  flexability  when  GOTO  is  used   within  a
  44.                BEGIN/END block to avoid many block nesting errors.
  45.  
  46.            -   A bug was fixed to allow a ';' (semicolon) character
  47.                to be used at the end of all TYPE statements after a
  48.                WINDOW() function, just like  it can be used outside
  49.                of a window.
  50.  
  51.            -   The COLOR() function was enhanced to allow free-form
  52.                color names contained within variables. This feature
  53.                matches  the capability of the Professional EBL-Plus
  54.                compiler version 1.02 and later.
  55.  
  56.        *   EBL 4.05
  57.  
  58.            -   A minor  bug within the GOTO command caused it to be
  59.                slower than normal.  It now runs at full speed.
  60.  
  61.  
  62.  
  63.        Page     1
  64.  
  65.  
  66.            -   KEY(PRTSC) key is recognized and will properly print
  67.                the screen on the line printer when the  key is read
  68.                from the stack.  The  equivalent  key  value  within
  69.                BEGSTACK is \F0\01.
  70.  
  71.            -   Inline code can be placed in the  stack.  If you are
  72.                familiar with  assembly language  programming,  this
  73.                technique can  provide extra power within  the stack
  74.                in special  instances.  The executable code must  be
  75.                preassembled and the hex machine code must be placed
  76.                in  the  stack  using  BEGSTACK.  The  prefix within
  77.                BEGSTACK is \F0\02\ss\cc\cc\cc  ...  \cc where ss is
  78.                the size of the code in  bytes (0 to  255 bytes) and
  79.                cc is the hexadecimal value of each byte to execute.
  80.                The suffix \C3; must also be added. C3 is a near RET
  81.                instruction and  the ';'  prevents  an implied Enter
  82.                key from being stacked.  The registers  AX,  BX, CX,
  83.                DX, and  SI will be saved prior to execution and can
  84.                be   used  freely  as  temporary  storage.  The   DS
  85.                register will be the same  as  CS.  On  entry to the
  86.                inline code, AH=0 if the application is requesting a
  87.                keystroke,  and  AH=1 if  requesting keyboard status
  88.                (refer to BIOS Int  16h for more information). DS:SI
  89.                will  be set to the address of the inline code entry
  90.                point.  If SI  is zero  before  returning,  EBL will
  91.                allow  a  single  keystroke to be  gotten  from  the
  92.                hardware and the inline code will be reexecuted.  In
  93.                this case,  other items on the keyboard  stack  will
  94.                not  be  used  until  the  inline  code  returns  SI
  95.                non-zero.  The   code  must  be   fully  relocatable
  96.                without   any   absolute  addresses.  If  any  other
  97.                registers are used, they must be  saved and restored
  98.                within the inline code.
  99.  
  100.                Some examples: The following will create a beep when
  101.                executed within the stack.
  102.                BEGSTACK
  103.                \f0\02\06\b8\07\0e\cd\10\c3;
  104.                END
  105.  
  106.                It is  equivalent to the following assembly language
  107.                code
  108.                        Mov     Ax,0E07h
  109.                        Int     10h
  110.                        Ret
  111.  
  112.                The following will page eject the LPT1 printer
  113.                BEGSTACK
  114.                \f0\02\08\ba\00\00\b0\0c\cd\17\c3;
  115.                END
  116.  
  117.                and is equivalent to
  118.                        Mov     Dx,0
  119.                        Mov     Al,0Ch
  120.                        Int     17h
  121.                        Ret
  122.  
  123.                The   following   automatically   types   the   word
  124.                'ACCOUNT',  then  will  allow  3  keystrokes  to  be
  125.  
  126.  
  127.        Page     2
  128.  
  129.  
  130.                manually entered, then the enter key will be pressed
  131.                after this.
  132.                BEGSTACK
  133.                ACCOUNT;
  134.                \f0\02\12\EB\02\04\00\80\FC\00\75\05\FF\4C\02\74\03\BE\00\00\C3;
  135.  
  136.                END
  137.  
  138.                and the inline code is equivalent  to the following.
  139.                This  example demonstrates how local storage can  be
  140.                maintained  for  the inline code.  It also shows how
  141.                the stack  can  be  stopped  until  specific  events
  142.                occur,  in this case waiting for the application  to
  143.                request 3 keys.
  144.                        Jmp     short Me        ; Jump over local storage
  145.                        Dw      4               ; Define local counter
  146.                Me:     Cmp     Ah,0            ; Did App request a key?
  147.                        Jne     Restart         ; No, am counting just keys
  148.                        Dec     Word ptr [si+2] ; Decrement the count of keys
  149.                        Je      Done            ; Count is over?
  150.                Restart: Mov    Si,0            ; No, SI = 0 means restart
  151.                Done:   Ret                     ; Else continue & release stack
  152.  
  153.        *   EBL 4.04
  154.  
  155.            -   Corrected bug where drive letter was always required
  156.                for  the  updated  CHDIR()  function (e.g.  CHDIR("C
  157.                :\SUB"). It is now optional as it was intended (e.g.
  158.                CHDIR("\SUB").
  159.  
  160.            -   The  British   spelling   for   CENTRE()   was   not
  161.                implemented   correctly.   Now  both  CENTER()   and
  162.                CENTRE() perform the same function.
  163.  
  164.            -   A bug was fixed  within  the  SPACE()  function that
  165.                caused a hang if one non-blank character was used as
  166.                a fill.
  167.  
  168.            -   A  SUBSTR()  function  has  been  added.  This  is a
  169.                superset of the existing substring operator '$'. The
  170.                syntax  is: SUBSTR( string ,start {,length, {pad}} )
  171.                This function returns the sub-string  of  a (string)
  172.                starting at the (start) character within the string,
  173.                up  to  (length)  characters  long.  If  (length) is
  174.                longer  than  the  original  string,  then  a  (pad)
  175.                character is  appended. The default (length) is  the
  176.                size  of the  original  string.  The  default  (pad)
  177.                character  is  a blank. A  synonym  for the SUBSTR()
  178.                function is MID(). Either function name can be used.
  179.  
  180.        *   EBL 4.03
  181.  
  182.            -   Corrected minor bug in DATE(Century) function.
  183.  
  184.            -   Corrected  cursor positioning  bug if READ  was used
  185.                within a WINDOW.
  186.  
  187.            -   Updated  EDIT() to  read keystrokes from  DOS rather
  188.                than BIOS to provide  a